home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 44
/
Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso
/
Aminet
/
util
/
gnu
/
cvs-1.11.1p1.readme
< prev
next >
Wrap
Text File
|
2001-07-04
|
21KB
|
434 lines
Short: CVS 1.11.1p1 - Concurrent Versions System
Author: Various; ported by Olaf Barthel <olsen@sourcery.han.de>, Jens Langner <Jens.Langner@htw-dresden.de>
Uploader: Jens Langner <Jens.Langner@htw-dresden.de>
Type: util/gnu
CVS 1.11.1p1 Amiga port (29 April 2001)
=======================================
Introduction
------------
This is a somewhat rough port of GNU CVS 1.11.1p1, a version control system, which
allows you to keep old versions of files (usually source code), keep a log of
who, when, and why changes occurred, etc., like RCS or SCCS. It handles
multiple developers, multiple directories, triggers to enable/log/control
various operations, and can work over a wide area network. The following tasks
are not included; they can be done in conjunction with CVS but will tend to
require some script-writing and software other than CVS: bug-tracking, build
management (that is, make and make-like tools), and automated testing. (Quoted
from the CVS documentation.)
I call this a 'rough port' since it is not as polished as, say Heinz Wrobel's
excellent 'RCS' port. It does what it needs to do, but a few features are
sorely lacking, such as support for Amiga file protection bits and code to
communicate with CVS servers via secure channels (Kerberos, SSH). On the other
hand, however, you get everything, and perhaps more, you got with the previous
Amiga ports of CVS: this port does not require 'ixemul.library' to work and it
does not require an RCS installation as it is completely self contained. The
port also probably would win a price as the largest 'pure' executable; it can
be made resident.
What's in this package?
-----------------------
This distribution contains the Amiga port, the Amiga specific source code and
most of the original GNU CVS 1.11.1p1 distribution. 'Most' in this case means that
only the original source code has been omitted in order to keep the
distribution archive small; the documentation and support files are all
provided. The original source code can be downloaded from the Internet at
'ftp://ftp.cvshome.org/pub/cvs-1.11.1p1/cvs-1.11.1p1.tar.gz'. I have added two more
files which are converted from the original Unix man pages, namely 'cvs.1.man'
and 'cvs.5.man' whose sources can be found in the 'cvs-1.11.1p1/man' directory.
Installation
------------
Almost everything you need to get CVS up and running is contained in the
archive which also included the 'README.AMIGA' file you are currently reading.
And that means the 'cvs' executable. You will also need a working
'queue-handler' (the one that ships with Workbench 3.1 and beyond is,
unfortunately, broken) which can be found on Aminet (you can find the archive
at 'http://us.aminet.net/pub/aminet/util/sys/HWGQueue.lha'). A TCP/IP stack
like Miami or AmiTCP is supported but not strictly required: you can perfectly
well keep your CVS repository on your local machine. Since CVS may ask you to
edit the log entries associated with the files to store, you may want to
configure the 'EDITOR' environment variable. Last, but not least, you must set
up an environment variable which allows CVS to associate you with the changes
you made; this should be the 'USER', 'LOGUSER' or 'USERNAME' variable.
Most importantly, this port requires Kickstart 2.04 or higher.
Here is how you could set up CVS on your machine. We start by creating two
drawers on the 'Work:' volume:
MakeDir Work:CVS-Root
MakeDir Work:CVS-Home
Next, we add two lines to the 'S:User-Startup' file:
Assign CVSHOME: Work:CVS-Home
Path CVSHOME: Add
The CVS program will need to be copied:
Copy cvs Work:CVS-Home CLONE
And the path to the CVS repository needs to be set:
SetEnv CVSROOT :local:Work:CVS-Root
Copy ENV:CVSROOT ENVARC:
Two environment variables need to be set up. Most importantly, CVS will need
your ID to write it into the log and revision files it creates. The Amiga port
will query three environment variables for that information, in the following
order: 'USER', 'LOGUSER' and 'USERNAME'. This means if the variable 'USER' is
not set, it will proceed to check whether 'LOGUSER' is set, and so forth. You
may have already configured these variables, but if you haven't, I suggest you
set up the 'LOGUSER' variable, like this:
SetEnv LOGUSER <Your ID here>
Copy ENV:LOGUSER ENVARC:
Note that <Your ID here> should be replaced by a mnemonic, nick name or short
name that must not contain any blank space characters.
You may want to configure the 'EDITOR' environment variable to invoke your
preferred text editor when CVS requests that log messages are added for an
update. If this variable is not set, CVS will default to invoke the 'Ed'
editor. This can be problematic if you have installed 'CygnusEd' whose 'Ed'
program detaches from the Shell that invoked it. When CVS invokes the editor,
it expects it to return only when the user has finished editing the respective
file. Here is an example configuration for CygnusEd:
SetEnv EDITOR Ed -keepio
And here is one for TurboText:
SetEnv EDITOR TTX WAIT
Don't forget to save the environment variable setting to make it permanent,
like this:
Copy ENV:EDITOR ENVARC:
Finally, install the 'queue-handler' from Aminet and reboot your machine. When
the system is again up and running, initialize the CVS repository like this:
cvs init
And that's all. Well, maybe you want to add a few default options to the
configuration file CVS reads upon startup. That file should be placed in the
'CVSHOME:' directory and called '.cvsrc':
Usage
-----
I personally found the default CVS documentation to be rather confusing. If
you don't know rather well what CVS is good for, the examples, the
terminology, all this doesn't seem to make great sense. My introduction to CVS
followed with Karl Fogel's book "Open Source Development with CVS" which
describes in compact form what CVS is and how it may be used. I suggest that
you consult the book (portions of which are available from 'www.coriolis.com')
and/or the CVS documentation (which has been included with this archive in the
'cvs-1.11/doc' drawer) for hints and ideas on how to use the program.
What many people fail to realize and what keeps them from using CVS in place
of the revision control system they have used for years is that you do not
need a networked CVS repository in order to use CVS. A local repository will
do. In fact, I switched over most of my current software development projects
to use a single local repository after I realized that CVS does much better
what I had previously used RCS for.
Notes on the implementation
---------------------------
The Amiga port implements only the client side of the CVS system. This means
that you can check out projects on remote servers but your local Amiga cannot
be a CVS server itself. This feature was omitted deliberately since I could
not find a safe and useful way to make CVS server mode work on the Amiga.
AmigaOS is not a server operating system and shoehorning the code to make it
work somehow would not have helped. If you need a CVS server, try a dedicated
solution using, for example, 'NetBSD'. The Amiga port can communicate with the
server using the remote shell protocol (rsh), and I have verified that the
process works reasonably well with, for example, the public 'Samba' CVS
repository. If you need a more secure method to communicate with the server
('rsh' is notoriously insecure and many systems no longer support it for
precisely that reason) such as 'Kerberos IV' or 'Secure Shell' (ssh), you'll
have a problem because there are no Amiga ports of these facilities available
yet.
CVS does not have a very sophisticated porting layer. Its file name semantics
all stem from the Unix world and the 'OS/2', 'VMS' and 'Windows NT' ports
merely resort to flipping slashes in file names, if necessary, when it comes to
make a name fit the local system's semantics. I had to find a similar way to
make the semantics work on the Amiga. What I did was to add a translation
service in the Amiga specific code which knows how to translate names like '.'
or '..'. But that's where it ends. Any more sophisticated naming schemes like
'foo/.././bar' may fail to translate properly. But then, those complex
patterns should be pretty rare anyway.
Unlike Heinz Wrobel's excellent 'RCS' port, this CVS port does not preserve
Amiga file protection bits for files checked in. When you check in a project
and check it out again, all file and directory protection bits will default to
'rwed', losing the 'archived', 'pure' and 'script' bits.
The Amiga port will expand wild card patterns for file and directory names
specified as command line parameters, such as "#?.c". The wild card pattern
syntax is that of AmigaDOS. It is *not* the syntax of the standard regular
expressions other GNU tools will use.
You can access remote CVS repositories by means of a properly configured
TCP/IP stack. This port requires that the stack complies to the AmiTCP V3 API
definition, which all modern Amiga TCP/IP stacks do. It does not work with the
INet-225 TCP/IP stack, though.
When CVS resorts to calling external programs, a working 'PIPE:' device is
required, which is not yet part of the AmigaOS Workbench distribution. Do not
underestimate this. The program will fail or behave erratically without a
working 'PIPE:' device. It is strongly recommended to download a working
'queue-handler', such as from Aminet.
The source code for the Amiga port is included in this distribution. All you
need to know before you can recompile this CVS port is described in the file
'README.AMIGA' which you can find in the 'source' directory.
This is a 'single user' CVS port. There is just one single home directory
(referred to as 'CVSHOME:') and your login name and ID are assumed to be the
same (set in the 'USER', 'LOGUSER' or 'USERNAME' environment variables).
There is no 'cvsbug' shell script or program included with this port.
Contacting the author
---------------------
If you have any further questions on this port, feel free to contact us:
Olaf Barthel
Brabeckstr. 35
D-30559 Hannover
Federal Republic of Germany
olsen@sourcery.han.de
Jens Langner
Lannerstrasse 1
D-01219 Dresdem
Federal Republic of Germany
Jens.Langner@htw-dresden.de
History
-------
2001-04-29 Jens Langner <Jens.Langner@htw-dresden.de>
* updated CVS source tree to latest version 1.11.1p1
and updated amiga.c implementation accordingly
* CVS/Entries files were broken because of some wrong time calculation
in convert_fileinfo_to_stat()
* fixed some bugs in the smakefiles and corrected some header files
2001-02-08 Olaf Barthel <olsen@sourcery.han.de>
* Whoops. The fstat() replacement function did not get called and
thus ended up trashing the protection bits of files checked out.
* The current signal handler was not properly restored in the
password entry routine.
2001-02-07 Olaf Barthel <olsen@sourcery.han.de>
* The password query routine failed to store the password entered,
rendering cvs almost entirely useless. The code was also vulnerable
when receiving a ^C break signal.
* Rewrote stat(), fstat(), lstat() and chmod() from scratch since
the original implementations turned out to be fundamentally
incompatible with how CVS would use file attribute bits.
* Worked around another potential pitfall with the access()
implementation.
============================= Archive contents =============================
Original Packed Ratio Date Time Name
-------- ------- ----- --------- -------- -------------
1112 602 45.8% 30-Apr-01 21:57:26 ChangeLog.AMIGA
467916 244197 47.8% 29-Apr-01 10:59:08 cvs
11416 4976 56.4% 01-May-01 21:51:02 cvs-1.11.1p1.readme
146 118 19.1% 21-Dec-00 23:14:18 +AUTHORS
10018 3286 67.1% 19-Apr-01 20:45:26 +BUGS
115504 39114 66.1% 26-Apr-01 19:12:56 +ChangeLog
28657 28657 0.0% 28-Feb-01 15:49:38 +ChangeLog.zoo
16891 6407 62.0% 25-Apr-01 23:20:34 +ChangeLog
3344 1430 57.2% 30-Apr-01 20:46:22 +clmerge
1925 923 52.0% 30-Apr-01 20:46:22 +cln_hist
5520 2233 59.5% 30-Apr-01 20:46:22 +commit_prep
4530 1793 60.4% 30-Apr-01 20:48:08 +cvs2vendor
4530 1793 60.4% 28-Feb-01 15:49:38 +cvs2vendor.sh
2264 841 62.8% 30-Apr-01 20:48:08 +cvscheck
1389 696 49.8% 28-Feb-01 15:49:38 +cvscheck.man
2264 841 62.8% 28-Feb-01 15:49:38 +cvscheck.sh
14003 5121 63.4% 28-Feb-01 15:49:38 +cvshelp.man
5241 2363 54.9% 30-Apr-01 20:46:22 +cvs_acls
4456 1724 61.3% 30-Apr-01 20:48:08 +debug_check_log
4456 1724 61.3% 23-Oct-00 22:55:58 +debug_check_log.sh
2447 1224 49.9% 28-Feb-01 15:49:38 +descend.man
2532 968 61.7% 28-Feb-01 15:49:38 +descend.sh
11398 4224 62.9% 28-Feb-01 15:49:38 +dirfns.shar
4002 1764 55.9% 28-Feb-01 15:49:38 +intro.doc
4885 2022 58.6% 30-Apr-01 20:46:22 +log
14694 5026 65.7% 30-Apr-01 20:46:24 +log_accum
11639 3370 71.0% 30-Apr-01 20:46:22 +Makefile
3208 1303 59.3% 05-Jan-01 19:18:18 +Makefile.am
1877 1002 46.6% 30-Apr-01 20:46:24 +mfpipe
4647 1842 60.3% 30-Apr-01 20:48:08 +rcs-to-cvs
4647 1842 60.3% 28-Feb-01 15:49:38 +rcs-to-cvs.sh
17623 6942 60.6% 30-Apr-01 20:48:08 +rcs2log
17623 6942 60.6% 19-Apr-01 20:45:26 +rcs2log.sh
3946 1276 67.6% 28-Feb-01 15:49:38 +rcs2sccs.sh
6575 2787 57.6% 30-Apr-01 20:46:24 +rcslock
5029 2365 52.9% 19-Apr-01 20:45:26 +README
8344 3013 63.8% 30-Apr-01 20:46:24 +sccs2rcs
12559 4982 60.3% 19-Apr-01 20:45:26 +COPYING
25337 9300 63.2% 19-Apr-01 20:45:26 +COPYING.LIB
2775 1133 59.1% 24-Apr-01 19:14:50 +DEVEL-CVS
132208 42423 67.9% 25-Apr-01 23:31:46 +ChangeLog
1253 673 46.2% 28-Feb-01 15:49:38 +ChangeLog.fsf
37553 13601 63.7% 19-Apr-01 20:45:28 +cvs-paper.ms
85412 33032 61.3% 19-Apr-01 20:45:28 +cvs-paper.ps
25403 4798 81.1% 27-Apr-01 21:02:38 +cvs.aux
6415 2602 59.4% 27-Apr-01 21:02:42 +cvs.info
49250 17228 65.0% 27-Apr-01 21:02:42 +cvs.info-1
49487 16990 65.6% 27-Apr-01 21:02:42 +cvs.info-2
50378 15878 68.4% 27-Apr-01 21:02:42 +cvs.info-3
50809 17506 65.5% 27-Apr-01 21:02:42 +cvs.info-4
50319 17263 65.6% 27-Apr-01 21:02:42 +cvs.info-5
40903 13576 66.8% 27-Apr-01 21:02:42 +cvs.info-6
48527 13105 72.9% 27-Apr-01 21:02:42 +cvs.info-7
44540 16107 63.8% 27-Apr-01 21:02:42 +cvs.info-8
37168 7523 79.7% 27-Apr-01 21:02:42 +cvs.info-9
1057980 339365 67.9% 27-Apr-01 21:02:40 +cvs.ps
485333 163533 66.3% 24-Apr-01 19:14:52 +cvs.texinfo
2618 639 75.5% 27-Apr-01 21:02:40 +cvsclient.aux
865 462 46.5% 27-Apr-01 21:02:42 +cvsclient.info
24957 9277 62.8% 27-Apr-01 21:02:42 +cvsclient.info-1
39506 12187 69.1% 27-Apr-01 21:02:42 +cvsclient.info-2
28440 10032 64.7% 27-Apr-01 21:02:42 +cvsclient.info-3
250596 90778 63.7% 27-Apr-01 21:02:42 +cvsclient.ps
92982 31232 66.4% 24-Apr-01 19:14:52 +cvsclient.texi
20 20 0.0% 27-Apr-01 21:02:34 +CVSvn.texi
11325 4728 58.2% 19-Apr-01 20:45:28 +RCSFILES
345335 120316 65.1% 24-Apr-01 19:14:50 +FAQ
8912 4055 54.4% 24-Apr-01 19:14:50 +HACKING
17823 7052 60.4% 24-Apr-01 19:14:50 +INSTALL
8912 3706 58.4% 25-Apr-01 23:21:22 +ChangeLog
60139 20303 66.2% 19-Apr-01 20:45:30 +cvs.1
13383 4558 65.9% 28-Feb-01 15:49:38 +cvs.5
7127 3034 57.4% 19-Apr-01 20:45:30 +cvsbug.8
2822 1422 49.6% 19-Apr-01 20:28:56 +MINOR-BUGS
50095 18806 62.4% 27-Apr-01 20:59:46 +NEWS
2388 1188 50.2% 19-Apr-01 20:28:56 +PROJECTS
8219 3765 54.1% 24-Apr-01 19:14:50 +README
7227 3279 54.6% 19-Apr-01 20:45:26 +TESTS
41134 16919 58.8% 24-Apr-01 19:14:50 +TODO
1381 645 53.2% 25-Apr-01 23:21:50 +ChangeLog
5583 2162 61.2% 27-Apr-01 21:02:46 +Makefile.in
476 292 38.6% 19-Apr-01 20:29:12 +README
80207 23292 70.9% 03-Feb-01 14:44:20 cvs.1.man
17517 5120 70.7% 03-Feb-01 14:44:10 cvs.5.man
10054 4395 56.2% 30-Apr-01 22:13:14 README.AMIGA
13415 4158 69.0% 30-Apr-01 22:08:28 +amiga.diffs
59312 13927 76.5% 29-Apr-01 10:58:30 +amiga.c
7628 1985 73.9% 29-Apr-01 10:14:24 +amiga.h
1364 708 48.0% 03-Feb-01 12:01:32 +grp.h
1537 759 50.6% 28-Apr-01 16:16:14 +pwd.h
1406 729 48.1% 03-Feb-01 12:01:44 +signal.h
587 293 50.0% 03-Feb-01 12:02:12 +commifmt.h
970 576 40.6% 03-Feb-01 12:02:18 +file.h
1338 681 49.1% 03-Feb-01 12:02:26 +types.h
1232 639 48.1% 03-Feb-01 12:02:30 +wait.h
1307 678 48.1% 03-Feb-01 12:01:20 +utime.h
184 134 27.1% 09-Dec-97 12:50:14 +inet.h
696 265 61.9% 04-Dec-97 08:21:16 +miamisysctl.h
3819 1537 59.7% 04-Dec-97 09:08:26 +socketbasetags.h
742 346 53.3% 04-Dec-97 09:10:54 +miamibpf_protos.h
1751 650 62.8% 27-Dec-97 12:11:12 +miamipcap_protos.h
1554 629 59.5% 28-Dec-97 10:54:58 +miami_protos.h
2597 696 73.1% 04-Dec-97 10:18:56 +socket_protos.h
1385 452 67.3% 28-Dec-97 10:51:42 +usergroup_protos.h
336 190 43.4% 28-Dec-97 09:34:10 +errno.h
836 449 46.2% 26-Dec-97 07:05:48 +miami.h
1347 542 59.7% 28-Dec-97 10:51:24 +usergroup.h
365 210 42.4% 04-Dec-97 08:21:18 +ansi.h
1055 454 56.9% 04-Dec-97 08:21:18 +endian.h
409 211 48.4% 04-Dec-97 08:21:18 +types.h
2406 764 68.2% 04-Dec-97 08:21:16 +bpf.h
6049 2097 65.3% 28-Dec-97 13:41:42 +if.h
1180 532 54.9% 08-Dec-97 07:12:44 +pcap.h
1186 535 54.8% 08-Dec-97 07:12:56 +radix.h
7993 2875 64.0% 28-Dec-97 11:26:04 +route.h
3312 1331 59.8% 08-Dec-97 07:09:46 +netdb.h
328 211 35.6% 04-Dec-97 08:21:16 +icmp_var.h
2023 825 59.2% 04-Dec-97 08:21:16 +igmp.h
231 154 33.3% 04-Dec-97 08:21:16 +igmp_var.h
16894 4556 73.0% 08-Dec-97 07:11:04 +in.h
670 366 45.3% 04-Dec-97 08:21:16 +in_systm.h
4215 1678 60.1% 04-Dec-97 08:21:16 +ip.h
2877 981 65.9% 06-Dec-97 10:39:58 +ip6.h
4528 1544 65.9% 06-Dec-97 10:42:16 +ip6_icmp.h
2648 966 63.5% 06-Dec-97 10:43:08 +ip6_opts.h
5112 1754 65.6% 04-Dec-97 08:21:16 +ip_icmp.h
2765 1121 59.4% 28-Dec-97 10:28:44 +ip_mroute.h
87 68 21.8% 04-Dec-97 08:21:16 +ip_var.h
2663 1148 56.8% 04-Dec-97 08:21:16 +tcp.h
1088 447 58.9% 04-Dec-97 08:21:16 +tcp_var.h
346 218 36.9% 04-Dec-97 08:21:16 +udp.h
573 308 46.2% 04-Dec-97 08:21:16 +udp_var.h
3650 712 80.4% 30-Dec-97 15:00:22 +miamibpf_pragmas.h
11479 1451 87.3% 30-Dec-97 15:00:28 +miamipcap_pragmas.h
12185 1730 85.8% 30-Dec-97 15:00:36 +miami_pragmas.h
19604 2331 88.1% 30-Dec-97 15:00:42 +socket_pragmas.h
13876 1526 89.0% 30-Dec-97 15:00:48 +usergroup_pragmas.h
488 184 62.2% 25-Dec-97 07:21:06 +miamibpf_pragmas.h
1601 372 76.7% 27-Dec-97 12:08:58 +miamipcap_pragmas.h
1588 451 71.5% 28-Dec-97 10:55:16 +miami_pragmas.h
2314 580 74.9% 24-Dec-97 09:39:56 +socket_pragmas.h
1912 401 79.0% 25-Dec-97 06:47:06 +usergroup_pragmas.h
155 117 24.5% 24-Dec-97 09:40:36 +miami.h
170 123 27.6% 04-Dec-97 09:15:46 +miamibpf.h
175 126 28.0% 04-Dec-97 09:15:58 +miamipcap.h
182 128 29.6% 24-Dec-97 09:40:34 +socket.h
200 135 32.5% 04-Dec-97 09:16:08 +usergroup.h
2185 1084 50.3% 08-Dec-97 11:09:50 +resolv.h
481 242 49.6% 04-Dec-97 08:21:20 +cdefs.h
4470 1699 61.9% 04-Dec-97 08:21:20 +errno.h
596 286 52.0% 04-Dec-97 08:21:20 +filio.h
1189 529 55.5% 09-Dec-97 10:31:12 +ioccom.h
236 116 50.8% 04-Dec-97 08:21:20 +ioctl.h
163 131 19.6% 04-Dec-97 08:21:18 +param.h
9460 3407 63.9% 06-Dec-97 11:41:32 +socket.h
2950 741 74.8% 04-Dec-97 08:21:18 +sockio.h
1750 745 57.4% 04-Dec-97 08:21:18 +sysctl.h
4221 1626 61.4% 04-Dec-97 08:21:20 +syslog.h
1870 744 60.2% 04-Dec-97 09:18:46 +time.h
1479 639 56.7% 04-Dec-97 09:19:06 +types.h
443 268 39.5% 04-Dec-97 11:13:08 +uio.h
101 73 27.7% 04-Dec-97 10:45:00 +syslog.h
296 193 34.7% 07-Feb-01 16:35:12 +smakefile
7166 2051 71.3% 03-Feb-01 14:22:20 +_assert.c
4157 1379 66.8% 03-Feb-01 14:22:24 +_assert.h
9397 2400 74.4% 28-Apr-01 22:10:10 +config.h
2895 1502 48.1% 07-Feb-01 16:35:02 +smakefile
3682 1709 53.5% 07-Feb-01 16:34:56 +smakefile
1828 916 49.8% 01-May-01 21:59:08 +README.AMIGA
295 170 42.3% 03-Feb-01 12:40:24 +smakefile
8065 3567 55.7% 01-Feb-01 17:44:24 +options.h
5790 2480 57.1% 28-Apr-01 21:38:28 +smakefile
4108 1717 58.2% 07-Feb-01 16:35:26 +smakefile
-------- ------- ----- --------- --------
4589548 1648191 64.0% 03-May-101 03:04:52 173 files